package com.xj.common.bussiness.deviceInformation.entity;

import java.io.Serializable;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import java.util.Date;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.activerecord.Model;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import org.springframework.format.annotation.DateTimeFormat;

import static org.springframework.format.annotation.DateTimeFormat.ISO.DATE;

/**
 * <p>
 * 
 * </p>
 *
 * @author Hmemb
 * @since 2018-02-27
 */
@EqualsAndHashCode(callSuper=false)
@Data
@TableName("tb_device_information")
public class TbDeviceInformation extends Model<TbDeviceInformation> {

    private static final long serialVersionUID = 1L;

	@TableId(value="id", type= IdType.AUTO)
	private Integer id;
    /**
     * 设备品牌
     */
	@TableField(value="deviec_brand")
	private String deviecBrand;
    /**
     * 机械类型（1-9对应挖掘机、装载机、矿用自卸车、推土机、压路机、平地机、混凝土机械、桩工机械、凿岩机械）
     */
	@TableField(value="machinery_type")
	private String machineryType;
    /**
     * 出厂日期
     */
	@TableField(value="date_of_production")
	@DateTimeFormat(iso = DATE)
	private Date dateOfProduction;
    /**
     * 设备型号
     */
	@TableField(value="plate_subject")
	private String plateSubject;
    /**
     * 发动机型号
     */
	@TableField(value="engine_subject")
	private String engineSubject;
    /**
     * 功率
     */
	private String power;
    /**
     * 购买日期
     */
	@TableField(value="res_buy_date")
	@DateTimeFormat(iso = DATE)
	private Date resBuyDate;
    /**
     * 发动机编号
     */
	@TableField(value="engine_plate_num")
	private String enginePlateNum;
    /**
     * 设备是（0国产，1合资，2进口）
     */
	@TableField(value="production_type")
	private String productionType;
    /**
     * 设备产地
     */
	@TableField(value="production_address")
	private String productionAddress;
    /**
     * 行走方式(0轮式，1履带)
     */
	private String maneuver;
    /**
     * 工作时长
     */
	@TableField(value="work_time")
	private Integer workTime;
    /**
     * 燃料类型（0柴油，1汽油，2天然气）
     */
	private String fuel;

    /**
     * 尾气排放值
     */
	@TableField(value="output_volume")
	private String outputVolume;
    /**
     * 出厂编号
     */
	@TableField(value="factory_num")
	private String factoryNum;
    /**
     * 设备牌编号
     */
	@TableField(value="plate_num")
	private String plateNum;
    /**
     * 归属人身份证号/归属单位代码
     */
	private String identification;
	
	/**
     * 设备申请人姓名(个人或企业名称)
     */
	@TableField(value="register_name")
	private String deviceRegisterName;
	
	/**
	 * 创建时间
	 */
	@TableField(value="create_date")
	@DateTimeFormat(iso = DATE)
	private Date createDate;

	/**
	 * 是否抵押（0未抵押，1抵押）
	 */
	private String mortgage;

	/**
	 * 设备状态（0.未读取 1.已读取）
	 */
	@TableField(value="state")
	private String state;

	/**
	 * 设备备注（小程序最后出现的下载声明书委托书等，评估报告）
	 */
	@TableField(value="remarks")
	private String remarks;


	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getDeviecBrand() {
		return deviecBrand;
	}

	public void setDeviecBrand(String deviecBrand) {
		this.deviecBrand = deviecBrand;
	}

	public String getMachineryType() {
		return machineryType;
	}

	public void setMachineryType(String machineryType) {
		this.machineryType = machineryType;
	}

	public Date getDateOfProduction() {
		return dateOfProduction;
	}

	public void setDateOfProduction(Date dateOfProduction) {
		this.dateOfProduction = dateOfProduction;
	}

	public String getPlateSubject() {
		return plateSubject;
	}

	public void setPlateSubject(String plateSubject) {
		this.plateSubject = plateSubject;
	}

	public String getEngineSubject() {
		return engineSubject;
	}

	public void setEngineSubject(String engineSubject) {
		this.engineSubject = engineSubject;
	}

	public String getPower() {
		return power;
	}

	public void setPower(String power) {
		this.power = power;
	}

	public Date getResBuyDate() {
		return resBuyDate;
	}

	public void setResBuyDate(Date resBuyDate) {
		this.resBuyDate = resBuyDate;
	}

	public String getEnginePlateNum() {
		return enginePlateNum;
	}

	public void setEnginePlateNum(String enginePlateNum) {
		this.enginePlateNum = enginePlateNum;
	}

	public String getProductionType() {
		return productionType;
	}

	public void setProductionType(String productionType) {
		this.productionType = productionType;
	}

	public String getProductionAddress() {
		return productionAddress;
	}

	public void setProductionAddress(String productionAddress) {
		this.productionAddress = productionAddress;
	}

	public String getManeuver() {
		return maneuver;
	}

	public void setManeuver(String maneuver) {
		this.maneuver = maneuver;
	}

	public Integer getWorkTime() {
		return workTime;
	}

	public void setWorkTime(Integer workTime) {
		this.workTime = workTime;
	}

	public String getFuel() {
		return fuel;
	}

	public void setFuel(String fuel) {
		this.fuel = fuel;
	}

	public String getOutputVolume() {
		return outputVolume;
	}

	public void setOutputVolume(String outputVolume) {
		this.outputVolume = outputVolume;
	}

	public String getFactoryNum() {
		return factoryNum;
	}

	public void setFactoryNum(String factoryNum) {
		this.factoryNum = factoryNum;
	}

	public String getPlateNum() {
		return plateNum;
	}

	public void setPlateNum(String plateNum) {
		this.plateNum = plateNum;
	}


	public String getIdentification() {
		return identification;
	}

	public void setIdentification(String identification) {
		this.identification = identification;
	}

	@JsonFormat(pattern = "yyyy-MM-dd")
	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public String getDeviceRegisterName() {
		return deviceRegisterName;
	}

	public void setDeviceRegisterName(String deviceRegisterName) {
		this.deviceRegisterName = deviceRegisterName;
	}

	public String getMortgage() {
		return mortgage;
	}

	public void setMortgage(String mortgage) {
		this.mortgage = mortgage;
	}

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

	public String getRemarks() {
		return remarks;
	}

	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	@Override
	protected Serializable pkVal() {
		return this.id;
	}
}
